#!/bin/bash

# 设置颜色输出
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
NC='\033[0m' # No Color

# 打印带颜色的消息
print_message() {
    echo -e "${GREEN}[INFO]${NC} $1"
}

print_warning() {
    echo -e "${YELLOW}[WARNING]${NC} $1"
}

print_error() {
    echo -e "${RED}[ERROR]${NC} $1"
}

# 检查是否以root权限运行
if [ "$EUID" -ne 0 ]; then
    print_error "请以root权限运行此脚本"
    exit 1
fi

# 安装Nginx
print_message "正在安装Nginx..."
apt update
apt install -y nginx

# 检查Nginx是否安装成功
if ! command -v nginx &> /dev/null; then
    print_error "Nginx安装失败"
    exit 1
fi

print_message "Nginx安装成功，版本: $(nginx -v)"

# 备份默认配置
print_message "备份默认Nginx配置..."
cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak

# 应用我们的配置
print_message "应用TellTech Nginx配置..."
cp /root/telltech/nginx/nginx.conf /etc/nginx/nginx.conf

# 检查配置语法
print_message "检查Nginx配置语法..."
nginx -t

if [ $? -ne 0 ]; then
    print_error "Nginx配置语法检查失败，请检查配置文件"
    exit 1
fi

# 确保前端目录存在
print_message "确保前端目录存在..."
mkdir -p /root/telltech/frontend

# 设置目录权限
print_message "设置目录权限..."
chmod -R 755 /root/telltech/frontend

# 重启Nginx服务
print_message "重启Nginx服务..."
systemctl restart nginx

# 检查Nginx状态
print_message "检查Nginx状态..."
systemctl status nginx

# 检查Nginx是否监听端口
print_message "检查Nginx是否监听端口..."
netstat -tulpn | grep nginx

print_message "Nginx安装和配置完成！"
print_message "您现在可以通过以下地址访问您的网站："
print_message "http://$(hostname -I | awk '{print $1}')"
print_message "或者 http://telltech.cn (如果DNS已配置)"

# 提供后续步骤的说明
print_message "后续步骤："
print_message "1. 确保您的防火墙允许80端口访问"
print_message "2. 如果需要HTTPS，请获取SSL证书并取消注释nginx.conf中的SSL配置"
print_message "3. 如果需要自定义域名，请更新nginx.conf中的server_name"
print_message "4. 如果前端文件路径有变化，请更新nginx.conf中的root路径"

exit 0 